This invention is related in general to the field of computer software, and more particularly, to a multi-layered software application interface architecture.
Software applications often are required to interface with data in several diverse formats. This is particularly true of embedded system software. Embedded system software has become extremely complex, particularly in the automotive industry. Increased competition has also forced automotive companies to reduce their costs and time to market. Component outsourcing is a widely used method for reducing costs. Outsourcing embedded system hardware reduces cost per vehicle, but it increases the time and costs in engineering due to the effects on software development and calibration development. Calibration development is the process by which certain values in the software of the embedded systems are adjusted or tailored. Because each outsourced hardware supplier uses its own set of hardware and software tools for software and calibration development, engineers must learn these new tools and adapt them into their processes. This learning curve can be quite significant relative to the total development time. The new tools often do not meet engineering requirements and cannot be used. This results in the adaptation or enhancement of existing tools to work in the new hardware and software environment. The resultant costs can escalate out of control, which entirely defeats the cost-cutting purpose behind outsourcing.
It has been recognized that it is desirable to provide a multi-layered software application interface architecture which uses modular plug-ins to access data of diverse types and formats. A standard interface is defined for each data type and the data are accessed according to the predefined standard interface.
In one aspect of the invention, a multi-layered software architecture comprises a software application layer, a predefined file filter interface layer operable to perform basic file functions, and a data standard interface layer having a plurality of standard methods for accessing data of a data type. Further, a first plug-in is provided that is operable to access a first data format of the data type according to the data standard interface layer, and a second plug-in is provided that is operable to access a second data format of the data type according to the data standard interface layer.
In another aspect of the invention, an embedded software calibration system comprises a software tool operable to calibrate constants in a software application, and at least one data interface plug-in in communications with the software tool and operable to access files of a first data type having a predetermined data format.
In yet another aspect of the invention, an embedded system software tool comprises a software tool. There is further provided a binary interface plug-in in communications with the software tool and operable to access binary data files having a predetermined binary data format, a symbolic interface plug-in in communications with the software tool and operable to access symbolic data files having a predetermined symbolic data format, and a device interface plug-in in communications with the software tool and operable to access data stored in a device type having a predetermined data format.
In yet another aspect of the present invention, a method of accessing data comprises the steps of selecting a data interface plug-in in response to a specific data type and format of input data, and then accessing the input data according to a predetermined interface standard for the specific data type.
One technical advantage of the invention provides a standard interface for accessing data of diverse types and formats so that plug-ins or modular code components may be developed for accessing each data type and data format. These code components can be easily plugged into software applications that support them. As a result, software applications may be developed according to the standard interface and be executed with plug-ins which are also coded according to the standard interface. In this manner, the software application need not be modified or expanded in any way in order to support new data types or data formats.